﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Text.RegularExpressions;
namespace DomainSearchTools.Common
{
    public class SysDomain
    {
        const string _RegDomainPrev = @"^[0-9a-z]+([0-9a-z\-])*[0-9a-z]+$";

        /// <summary>
        /// 域名前缀 (英文不含各国的)
        /// 域名由各国文字的特定字符集(暂不支持)、英文字母、数字及“ - ” ( 即连字符或减号 ) 任意组合而成，但开头及结尾均不能含有“ - ”
        /// 域名最长可达 67 个字节 ( 包括后缀 .com 、 .net 、 .org 等 )
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool IsRegDomainPrev(string input)
        {
            return Regex.IsMatch(input, _RegDomainPrev);
        }
        /// <summary>
        /// 验证域名 (英文不含各国的)
        /// 域名由各国文字的特定字符集(暂不支持)、英文字母、数字及“ - ” ( 即连字符或减号 ) 任意组合而成，但开头及结尾均不能含有“ - ”
        /// 域名最长可达 67 个字节 ( 包括后缀 .com 、 .net 、 .org 等 )
        /// </summary>
        /// <param name="input">域名</param>
        /// <returns></returns>
        public static bool IsRegDomain(string input)
        {
            if (input.Length > 67 || input.Length < 3) return false;
            if (input.IndexOf(".") < 0) return false;
            string PrevName = input.Substring(0, input.IndexOf("."));
            return Regex.IsMatch(PrevName, _RegDomainPrev);
        }

        /// <summary>
        /// 获取域名后缀
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string GetSuffix(string input)
        {
            if (input.IndexOf(".") < 0) return "";
            return input.Substring(input.IndexOf("."));
        }
        /// <summary>
        /// 获取域名前缀
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string GetPrev(string input)
        {
            if (input.IndexOf(".") < 0) return "";
            return input.Substring(0, input.IndexOf("."));
        }
    }
}
